Memory card file recovery system

ABSTRACT

A removable semiconductor memory card for a portable appliance is provided comprising a memory with a portion thereof dedicated to deleted files, and a memory card controller that operates to recognize a memory delete command associated with a specific file, and to shift the specific file to the deleted files portion of the memory.

FIELD OF THE INVENTION

[0001] The present invention relates generally to the field of memorydevices, and more particularly, to a memory card for a portableappliance.

BACKGROUND OF THE INVENTION

[0002] Memory cards for portable appliances do not allow for therecovery of erased files. Any recovery of erased files must beimplemented through a function associated with the operating system ofthe appliance itself. For example, most PCs have the capability for therecovery of erased files through a recycle bin. However, for memorycards for non-PC appliances, such as cameras, for example, where thememory card may be moved from appliance to appliance, this capability islost.

SUMMARY OF THE INVENTION

[0003] In one embodiment of the present invention, a portable memorycard is provided for a non-PC portable appliance, comprising thefollowing elements on the card: a memory with a portion thereofdedicated to deleted files; and a memory card controller that operatesto recognize a memory delete command associated with a specific file,and to shift the specific file to the deleted files portion of thememory.

[0004] In a further embodiment of the present invention, a method isprovided for use in a memory card controller for controlling a portionof the memory card dedicated to deleted files, comprising: recognizing amemory delete command associated with a specified file; and shifting thefile to the deleted files portion of the memory.

[0005] In a yet further embodiment of the present invention, a programproduct is provided for use in a memory card controller for controllinga portion of the memory card dedicated to deleted files, comprisingmachine readable program code for causing a machine to perform thefollowing steps: recognizing a memory delete command associated with aspecified file; and shifting the file to the deleted files portion ofthe memory.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIG. 1 is a schematic block diagram of one embodiment of thepresent invention.

[0007]FIG. 2 is a schematic block diagram of a flowchart of anembodiment of the present invention.

[0008]FIG. 3 is a schematic block diagram of a flowchart of anembodiment of the present invention.

[0009]FIG. 4 is a schematic block diagram of a flowchart for providingan API to a portable non-PC appliance.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Referring now to FIG. 1, there is shown a portable memory cardfor a non-PC portable appliance 100. The portable memory card 100comprises a memory portion 110, with a portion 130 thereof dedicated todeleted files. The memory card 100 further includes a memory cardcontroller 140. The memory card controller includes code or hard wiredcircuitry and/or a combination thereof to recognize a memory deletecommand associated with a specific file, and to shift the specific fileto the deleted files portion 130 of the memory 110.

[0011] The memory card 100 may take a variety of differentconfigurations in shapes. Generally, the configuration and shape of thememory card will be dependent on the particular appliance with which itis to be used. The memory 110 for the card 100 may be implemented by anyconvenient set or matrix of storage elements, including electronicstorage, magnetic storage, or optical storage. The memory cardcontroller 140 may be implemented in an embodiment by means of aprocessor formed on or disposed on the memory card either in a separatechip or in the same chip as the memory 110. The memory card controller140 may implement one or a plurality of the normal functions required ofa memory controller, such as sending timing signals, storage signals andother required signals. Alternatively, the memory card controller 140can be dedicated simply to an erased file function in accordance withthe present invention.

[0012] An embodiment of an operating sequence for the memory cardcontroller 140 is shown in FIG. 2. The logic illustrated by FIG. 2 maybe implemented either by means of hard wire circuitry, or by means ofprogramming, and/or by a combination thereof. Referring to FIG. 2, thefirst operation represented by block 200 is to recognize a memory deletecommand associated with a specific file. In a most elemental embodimentof the present invention, the next operation comprises shifting thespecified file 240 to the dedicated deleted file portion of the memory130.

[0013] A further embodiment of the present invention is shown is FIG. 3.The first block 300 comprises recognizing a memory delete commandassociated with a specific file. Block 310 is then provided fordetermining a size of the specific file to be deleted.

[0014] Referring to block 320, it is then determined whether apredetermined criteria is met in the dedicated file portion 130 of thememory 110 with respect to the specific file. In one implementation ofthis block, the predetermined criteria may comprise whether the filesize of the specified file exceeds a remaining memory capacity in thedeleted files portion 130 of the memory 110.

[0015] Referring to block 330, if the predetermined criteria has beenmet, then an already resident file stored in the deleted files portionof the memory is deleted. There are a variety of different criteriawhich may be utilized to select which resident file or files should bedeleted from the deleted files portion of the memory. By way of example,but not by way of limitation, a criteria which may be utilized is afirst-in-first-out principle. Using this FIFO principle, the oldestresident file would automatically be selected for deletion from thedeleted files portion of the memory 130. Alternatively, various othercriteria may be utilized to select the resident file to be deleted inthe deleted files portion of 130 of the memory. Such other criteria mayinclude the file sizes of the already resident files. In this regard, itmay be more advantageous to delete a single large file, rather than aplurality of smaller resident files from the deleted files portion ofthe memory. Another method of selecting the resident file in thededicated deleted files portion of the memory to be deleted may be bymeans of sorting the resident files based on their source.Alternatively, various other selection criteria or means of sorting thealready resident files in the deleted files portion 130 of the memorymay be used to select the resident file or files to be deleted.

[0016] Referring now to block 340, the specified file is thenshifted/stored in the dedicated deleted file portion 130 of the memory110. Note that block 330 would be bypassed if the predetermined criteriaof block 320 was not met.

[0017] In order to access the dedicated deleted files portion 130 of thememory 110, a variety of options are available. By way of example butnot by way of limitation, the memory card could be placed into a driveor other receiving mechanism for a PC. Such a drive could be especiallyadapted for receiving such a portable memory card, or an adapter couldbe utilized in order to allow the memory card to be placed in the drive.Access of the dedicated deleted files portion of the memory could beaccomplished, by way of example but not by way of limitation, by using a“directory” command or by other convenient access command.

[0018] Referring now to block 350, there are certain instances where itis desirable for access to the dedicated deleted files portion 130 ofthe memory 110 to be available via a non-PC portable appliance. Suchnon-PC portable appliances may already include a method for accessingthe dedicated deleted files portion 130 of the memory. However, ininstances where the non-PC portable appliance does not include such amethod, it is desirable to add an API to the appliance in order to allowaccess to the deleted files portion of the memory. This addition of theAPI is represented by block 350.

[0019] An example implementation of block 350 is shown in FIG. 4.Referring to FIG. 4, block 400 comprises determining if an API foraccessing the dedicated deleted files portion of the memory is presentin the portable non-PC appliance. If the determination is YES, then theoperation moves to block 405 to return. Alternatively, if it isdetermined that there is no API for accessing the dedicated deletedfiles portion of the memory in the portable non-PC appliance, then theoperation moves to block 410. Block 410 comprises determining theoperating system for the portable non-PC appliance.

[0020] Referring now to block 420, software residing in the memorycontroller is selected from one or a plurality of software APIs designedfor various different operating systems to provide an API to thatportable non-PC appliance.

[0021] Referring to block 430, the selected software is loaded to theappliance. In block 440, the selected software is executed to presentthe API for the portable non-PC appliance. Note that the selectedsoftware may conveniently add an icon or menu to the operating systemfor the appliance to allow access by the user to this dedicated deletedfiles portion of the memory. By way of example but not by way oflimitation, clicking on the icon might bring up a listing of the deletedfiles. Clicking on any one of the files in the list would move that filefrom the dedicated deleted files portion of the memory 130 to the normalstorage area for files in the memory.

[0022] Accordingly, in one embodiment of the present invention, theportable memory card may further comprise a storage thereon containing alisting of deleted files resident in the portion of the memory dedicatedto deleted files.

[0023] In another embodiment of the present invention, the memory cardcontroller may comprise a storage thereon containing a listing ofdeleted files resident in the portion of the memory dedicated to deletedfiles.

[0024] In another embodiment of the present invention, the memory cardcontroller determines a file size for the specific file associated withthe delete command, and deletes an already resident file stored in thededicated file portion of the memory if a predetermined criteria is metin the deleted files portion of the memory.

[0025] In another embodiment of the present invention, the memory cardcontroller moves files into and out of the deleted files portion of thememory on a first-in-first-out basis.

[0026] In another embodiment of the present invention, the memory cardcontroller selects files to delete from the dedicated deleted filesportion of the memory by a file sort based on source.

[0027] In another embodiment of the present invention, the memory cardcontroller presents an API to the portable appliance to access thedeleted files portion of the memory.

[0028] In another embodiment of the present invention, the memory cardcontroller operates to determine the operating system of an applianceinto which the memory card has been coupled, selects software designedfor that operating system from among a plurality of software APIprograms, loads the selected software into the appliance, and executesthe selected program.

[0029] The present invention dedicates a special portion of the memoryon a portable memory card for deleted files, so that the deleted filescan be recovered if accidentally erased. The memory card controller 140will include therein a listing of deleted files resident in thededicated deleted files portion of the memory. Alternatively, the memorycard controller will have access to a portion of the memory 110containing this list of deleted files.

[0030] By moving deleted files to this special dedicated area of thememory, the user is guaranteed the ability to recover recently erasedfiles, even though the appliance such as a camera, may not have thisfeature. Accordingly, user unhappiness based on accidental erasure andloss of files, such as pictures, is eliminated. The present inventionallows for the recovery of such deleted files even if the portableappliance does not support such recovery. The method and system of thepresent invention provide assurance that files may be recoverable on theshort term as compared to current FAT methods.

[0031] The foregoing description of an embodiment of the invention hasbeen presented for purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdisclosed, and modifications and variations are possible in light of theabove teachings or may be acquired from practice of the invention. Theembodiment was chosen and described in order to explain the principlesof the invention and its practical application to enable one skilled inthe art to utilize the invention in various embodiments and with variousmodifications as are suited to the particular use contemplated. It isintended that the scope of the invention be defined by the claimsappended hereto, and their equivalents.

What is claimed is:
 1. A removable semiconductor memory card for aportable appliance, comprising the following elements on the card: amemory with a portion thereof dedicated to deleted files; a memory cardcontroller that operates to recognize a memory delete command associatedwith a specific file, and to shift the specific file to the deletedfiles portion of the memory.
 2. The memory card as defined in claim 1,further comprising a storage thereon containing a listing of deletedfiles resident in the portion of the memory dedicated to deleted files.3. The memory card as defined in claim 1, wherein the memory cardcontroller includes a storage thereon containing a listing of deletedfiles resident in the portion of the memory dedicated to deleted files.4. The memory card as defined in claim 1, wherein the memory cardcontroller determines a file size for the specific file associated withthe delete command, and deletes an already resident file stored in thededicated file portion of the memory if a predetermined criteria is metin the deleted files portion of the memory.
 5. The memory card asdefined in claim 4, wherein the memory card controller moves files intoand out of the deleted files portion of the memory on afirst-in-first-out basis.
 6. The memory card as defined in claim 4,wherein the memory card controller selects files to delete from thededicated deleted files portion of the memory by a file sort based onsource.
 7. The memory card as defined in claim 1, wherein the memorycard controller presents an API to the portable appliance to access thedeleted files portion of the memory.
 8. The memory card as defined inclaim 7, wherein the memory card controller operates to determine theoperating system of an appliance into which the memory card has beencoupled, selects software designed for that operating system from amonga plurality of software API programs, loads the selected software intothe appliance, and executes the selected program.
 9. A method for use ina memory card controller for controlling a portion of the memory carddedicated to deleted files, comprising the following steps: recognizinga memory delete command associated with a specified file; and shiftingthe file to the deleted files portion of the memory.
 10. The method asdefined in claim 9, further comprising: determining a file size for thespecified file; and deleting an already resident file stored in thedeleted files portion of the memory if a predetermined criteria is metin the deleted files portion of the memory.
 11. The method as defined inclaim 10, wherein the predetermined criteria comprises that the filesize of the specified file equals or exceeds a remaining memory capacityin the deleted files portion of the memory.
 12. The method as defined inclaim 10, wherein when the predetermined criteria is met, the residentfiles in the deleted files portion of the memory are deleted on afirst-in-first-out basis.
 13. The method as defined in claim 10, whereinwhen the predetermined criteria is met, the resident files in thedeleted files portion of the memory are deleted based on a file sortaccording to source.
 14. The method as defined in claim 10, furthercomprising adding an API to an appliance to which the memory card hasbeen coupled in order to allow access to the deleted files portion ofthe memory.
 15. The method as defined in claim 14, wherein adding an APIto an appliance comprises determining an operating system running theappliance; selecting software designed for the determined operatingsystem for providing an API; loading the selected software on theappliance; and executing the selected software to present the API.
 16. Aprogram product for use in a memory card controller for controlling aportion of the memory card dedicated to deleted files, comprisingmachine readable program code for causing a machine to perform thefollowing steps: recognizing a memory delete command associated with aspecified file; and shifting the file to the deleted files portion ofthe memory.
 17. The program product as defined in claim 16, furthercomprising code for causing performance of the steps: determining a filesize for the specified file; and deleting an already resident filestored in the deleted files portion of the memory is a predeterminedcriteria is met in the deleted files portion of the memory.
 18. Theprogram product as defined in claim 17, wherein the predeterminedcriteria comprises that the file size of the specified file exceeds aremaining memory capacity in the deleted files portion of the memory.19. The program product as defined in claim 17, further comprising codefor adding an API to an appliance to which the memory card has beencoupled in order to allow access to the deleted files portion of thememory.
 20. The program product as defined in claim 19, wherein the stepof adding an API comprises determining an operating system running theappliance; selecting software designed for the determined operatingsystem for providing an API; loading the selected software on theappliance; and executing the selected software to present the API. 21.The program product as defined in claim 17, wherein when thepredetermined criteria is met, the resident files in the deleted filesportion of the memory are deleted on a first-in-first-out basis.
 22. Theprogram product as defined in claim 17, wherein when the predeterminedcriteria is met, the resident files in the deleted files portion of thememory are deleted based on a file sort according to source.